package com.example.demo.entity.user;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Data;
import lombok.NoArgsConstructor;
//lombok工具包
@Data                                                           //自动生成getter、setter、toString()、equals()、hashCode() 以及全参构造方法(使用前需要在项目中引入 Lombok 依赖)
@NoArgsConstructor                                              //生成无参构造 public User(){}
@JsonIgnoreProperties(ignoreUnknown = true)                     //该注解为处理未知属性，JSON文件可能包含未知属性，则会忽略掉，继续成功生成对象
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)   //JSON命名与java命名转换规则，将 Java 的驼峰命名法（camelCase）转换为 JSON 的蛇形命名法（snake_case）（还有其他属性为其他命名规则间的转换）
@TableName("`t_user_info`")                                     //指定实体类对应数据库表名
public class UserInfo {
    @TableId(type = IdType.AUTO)                                //指定主键(type = IdType.AUTO：指定主键生成策略为 "自增")
    private Long id;
    @TableField("`name`")                                       //指定字段与数据库列的映射关系
    private String name;
    @TableField("`password`")
    private String password;
    private String email;
    private String sex;
    private String birthday;

    private Long isDelete;
    private Long createUser;
    private Long createTime;
    private Long updateUser;
    private Long updateTime;

    public void initEntity() {
        this.id = 0l;
        this.isDelete = 0l;
    }



}
